#ifndef EVENT_HANDLER_H
#define EVENT_HANDLER_H

#include "SDL.h"

namespace Engine
{
	class EventHandler
	{
		public:
			virtual ~EventHandler() = 0 {}

			virtual bool IsActive() const = 0;
			virtual void Activate() = 0;
			virtual void Deactivate() = 0;

			virtual void OnKeyboardEvent(const SDL_KeyboardEvent& k){}
			//mouse events
			virtual void OnMouseMotionEvent(const SDL_MouseMotionEvent& m){}
			virtual void OnMouseButtonEvent(const SDL_MouseButtonEvent& m){}
			//joy pad events
			virtual void OnJoyHatEvent(const SDL_JoyHatEvent& j){}//d pad
			virtual void OnJoyAxisEvent(const SDL_JoyAxisEvent& j){}//analog stick
			virtual void OnJoyButtonEvent(const SDL_JoyButtonEvent& j){}//buttons
			virtual void OnQuit(){}
	};
}

#endif